#ifndef __SOC_UART_H__
#define __SOC_UART_H__

#include "cms8s6990.h"
#include "soc_comm.h"

void SOC_UartInit(SOC_UartNo_t no, uint32_t baudrate);
void SOC_UartSendByte(SOC_UartNo_t no, uint8_t b);
void SOC_UartSend(SOC_UartNo_t no, uint8_t *buffer, int len);
void SOC_UartSendString(SOC_UartNo_t no, uint8_t *str);
int SOC_ReadByteBlock(SOC_UartNo_t no);
int SOC_ReadByte(SOC_UartNo_t no);

void SOC_UartSetEnableRx(SOC_UartNo_t no, bool en);
void SOC_UartSetEnableRx_IT(SOC_UartNo_t no, bool en);

void SOC_UartSetRxCallBack(SOC_UartNo_t no, SOC_IT_CALLBACK_UART cb);

//
extern SOC_IT_CALLBACK_UART m_uartRxCallBack[];
#define SOC_UartRaiseRxByte(no) do{\
	if(UART_GetReceiveIntFlag(no))\
	{\
		SOC_Uart##no##_RxCallBack(b);\
		UART_ClearReceiveIntFlag(no);	\
	}\
}while(0)	

#endif 